IF av.shutdowncmd[] = 0 THEN av.shutdowncmd := NIL
cxport := CreateMsgPort()
nb := [NB_VERSION, 0, rhd, 'ResetHandler 1.01 by FtC of EfS', 'Warns the user in case of a reset', NBU_UNIQUE OR NBU_NOTIFY, 0, 0, 0, cxport, 0]:newbroker
broker := CxBroker(nb, NIL)
ActivateCxObj(broker, 1)
signal := AllocSignal(-1)
IF signal = -1 THEN Raise(NOSIG)
NEW data
data.task := FindTask(NIL)
data.signal := Shl(1, signal)
keyport := CreateMsgPort()
keyreq := CreateIORequest(keyport, SIZEOF iostd)
OpenDevice('keyboard.device', NIL, keyreq, NIL)
NEW int
int.ln.pri := 32
int.ln.name := rhd
int.code := {handlercode}
int.data := data
keyreq.data := int
keyreq.command := KBD_ADDRESETHANDLER
DoIO(keyreq)
installed := TRUE
cxmask := Shl(1, cxport.sigbit)
WHILE running
recd := Wait(data.signal OR cxmask OR SIGBREAKF_CTRL_C OR SIGBREAKF_CTRL_D)